# 1. 文件的打开与关闭
# 使用 open() 函数可以打开一个文件，并指定模式。常见的模式有：

# 'r': 读取模式，默认模式，只能读取文件。
# 'w': 写入模式，会覆盖原有文件内容，如果文件不存在则创建新文件。
# 'a': 追加模式，在文件末尾追加内容，如果文件不存在则创建新文件。
# 'x': 独占创建模式，如果文件已存在则抛出异常。
# 'b': 二进制模式，用于读写二进制文件。
# 't': 文本模式，默认模式，用于读写文本文件。
# '+': 读写模式，可以同时进行读写操作。

# 示例：打开文件
# python
# 打开一个文件
file = open('example.txt', 'r')

# 读取文件内容
content = file.read()
print(content)

# 关闭文件
file.close()

# 2. 读取文件
# 可以使用多种方法读取文件内容。

# 2.1 一次性读取全部内容
# 使用 read() 方法一次性读取文件的全部内容。
# python
with open('example.txt', 'r') as file:
    content = file.read()
    print(content)
# 2.2 逐行读取
# 使用 readline() 方法逐行读取文件内容。

# python
with open('example.txt', 'r') as file:
    line = file.readline()
    while line:
        print(line.strip())  # 去除行尾的换行符
        line = file.readline()
# 2.3 读取所有行
# 使用 readlines() 方法读取所有行，并返回一个列表。

# python
with open('example.txt', 'r') as file:
    lines = file.readlines()
    for line in lines:
        print(line.strip())
# 2.4 使用 for 循环逐行读取
# 可以直接使用 for 循环逐行读取文件内容。

# python
with open('example.txt', 'r') as file:
    for line in file:
        print(line.strip())
        
# 3. 写入文件
# 可以使用多种方法写入文件内容。

# 3.1 写入文本
# 使用 write() 方法写入文本内容。

# python
with open('output.txt', 'w') as file:
    file.write("Hello, world!\n")
    file.write("This is a test.\n")
# 3.2 追加文本
# 使用 a 模式追加文本内容。

# python
with open('output.txt', 'a') as file:
    file.write("Appending more text.\n")

# 4. 读写二进制文件
# 可以使用 rb 和 wb 模式读写二进制文件。

# 4.1 读取二进制文件
# python
with open('example.bin', 'rb') as file:
    content = file.read()
    print(content)
    
# 4.2 写入二进制文件
# python
with open('output.bin', 'wb') as file:
    file.write(b"Binary data")
    
# 5. 文件的上下文管理
# 使用 with 语句可以自动管理文件的打开和关闭，避免忘记关闭文件的问题。
with open('example.txt', 'r') as file:
    content = file.read()
    print(content)

# 文件路径操作
import os

# 获取当前工作目录
current_dir = os.getcwd()
print("Current directory:", current_dir)

# 切换目录
os.chdir('/path/to/new/directory')
new_dir = os.getcwd()
print("New directory:", new_dir)

# 创建目录
os.makedirs('/path/to/new/directory/subdirectory')

# 删除目录
os.rmdir('/path/to/new/directory/subdirectory')

# 列出目录内容
files = os.listdir('/path/to/directory')
print("Files in directory:", files)